package ansi.negocio;

import java.util.Collection;

import ansi.dao.ViviendaDAO;
import ansi.exception.DAOExcepcion;
import ansi.modelo.Vivienda;
import ansi.util.Constantes;


public class GestionVivienda {

	public void insertar(String Ubicacion_Vivienda, Integer Numero_Vivienda, Double Metraje_Vivienda, String Tipo_Vivienda, Integer Residente_DNI_Residente)
			throws DAOExcepcion {
		ViviendaDAO dao = new ViviendaDAO();
		
		Vivienda vivienda = dao.obtenerPorNumeroVivienda(Numero_Vivienda, Ubicacion_Vivienda);
        if(vivienda != null) {//Error ya existe la vivienda
            throw new DAOExcepcion("Error ya existe la vivienda");
         }
		
		Vivienda vo = new Vivienda();
		vo.setUbicacion_Vivienda(Ubicacion_Vivienda);
		vo.setNumero_Vivienda(Numero_Vivienda);
		vo.setMetraje_Vivienda(Metraje_Vivienda);
		vo.setTipo_Vivienda(Tipo_Vivienda);
		vo.setEstado_Vivienda(Constantes.VIVIENDA_ESTADO_ACTIVO);
		vo.setResidente_DNI_Residente(Residente_DNI_Residente);
		dao.insertar(vo);
	}

	public Vivienda obtener(int idVivienda) throws DAOExcepcion {
		ViviendaDAO dao = new ViviendaDAO();
		return dao.obtener(idVivienda);
	}
	

	public void eliminar(int idVivienda) throws DAOExcepcion {
		ViviendaDAO dao = new ViviendaDAO();
		dao.eliminar(idVivienda);
		
	}

	public Vivienda actualizar(Integer idVivienda, String Ubicacion_Vivienda, Integer Numero_Vivienda, Double Metraje_Vivienda, String Tipo_Vivienda, Integer Residente_DNI_Residente) throws DAOExcepcion {
		ViviendaDAO dao = new ViviendaDAO();

		Vivienda vo = new Vivienda();
		vo.setIdVivienda(idVivienda);
		vo.setUbicacion_Vivienda(Ubicacion_Vivienda);
		vo.setNumero_Vivienda(Numero_Vivienda);
		vo.setMetraje_Vivienda(Metraje_Vivienda);
		vo.setTipo_Vivienda(Tipo_Vivienda);
	vo.setResidente_DNI_Residente(Residente_DNI_Residente);

		return dao.actualizar(vo);
	}

	public Collection<Vivienda> listar() throws DAOExcepcion {
		ViviendaDAO dao = new ViviendaDAO();
		return dao.listar();
	}
	
	 public Collection<Vivienda> buscarPorVivienda(String Vivienda)
	 
             throws DAOExcepcion {

     ViviendaDAO dao = new ViviendaDAO();

     return dao.buscarPorVivienda(Vivienda);

} 

 public Collection<Vivienda> buscarViviendaPorDNI(String Vivienda)
	 
             throws DAOExcepcion {

     ViviendaDAO dao = new ViviendaDAO();

     return dao.buscarViviendaPorDNI(Vivienda);

} 

}
